home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 3: Developer Tools / Linux Cubed Series 3 - Developer Tools.iso / devel / lang / lisp / guile-ii.src / guile-ii / guile-src / Makefile.in < prev   
Encoding:
Makefile  |  1995-08-17  |  10.8 KB  |  365 lines

  1. #    Copyright (C) 1994,1995 Free Software Foundation, Inc.
  2. #
  3. # This program is free software; you can redistribute it and/or modify
  4. # it under the terms of the GNU General Public License as published by
  5. # the Free Software Foundation; either version 2, or (at your option)
  6. # any later version.
  7. #
  8. # This program is distributed in the hope that it will be useful,
  9. # but WITHOUT ANY WARRANTY; without even the implied warranty of
  10. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  11. # GNU General Public License for more details.
  12. #
  13. # You should have received a copy of the GNU General Public License
  14. # along with this software; see the file COPYING.  If not, write to
  15. # the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
  16.  
  17.  
  18. SHELL = /bin/sh
  19.  
  20. subdirs=@existingdirs@
  21.  
  22. localfiles =    ANNOUNCE \
  23.         COPYING \
  24.         INSTALL \
  25.         Makefile.in \
  26.         configure \
  27.         configure.in \
  28.         config.sub \
  29.         config.guess \
  30.         install-sh
  31.  
  32. localtreats = ANN.BX
  33.  
  34. # `all'
  35. #     Compile the entire program.  This should be the default target.
  36. #     This target need not rebuild any documentation files; info files
  37. #     should normally be included in the distribution, and DVI files
  38. #     should be made only when explicitly asked for.
  39. all:
  40.     @for dir in ${subdirs}; do \
  41.         cd $$dir; \
  42.         ${MAKE} all; \
  43.         cd .. ;\
  44.     done
  45.  
  46. #`install'
  47. #     Compile the program and copy the executables, libraries, and so on
  48. #     to the file names where they should reside for actual use.  If
  49. #     there is a simple test to verify that a program is properly
  50. #     installed then run that test.
  51. #
  52. #     Use `-' before any command for installing a man page, so that
  53. #     `make' will ignore any errors.  This is in case there are systems
  54. #     that don't have the Unix man page documentation system installed.
  55. #
  56. #     In the future, when we have a standard way of installing info
  57. #     files, `install' targets will be the proper place to do so.
  58. #
  59. # Cygnus extention:
  60. #    `install'
  61. #          Should *not* depend on the target `all'.  [feh!] If the program is
  62. #          not already built, `make install' should fail.  This allows
  63. #          you to install programs even when `make' would otherwise
  64. #          determine them to be out of date.  This can happen, for
  65. #          example, when the result of a `make all' is transported via
  66. #          tape to another machine for installation.
  67. #
  68. subdir-inst-target=install-nobuild
  69.  
  70. install: all
  71.     ${MAKE} subdir-inst-target=install install-nobuild
  72.  
  73. install-nobuild:
  74.     for dir in ${subdirs}; do \
  75.         cd $$dir; \
  76.         ${MAKE} ${subdir-inst-target}; \
  77.         cd ..  ;\
  78.     done
  79.  
  80. #`uninstall'
  81. #     Delete all the installed files that the `install' target would
  82. #     create (but not the noninstalled files such as `make all' would
  83. #     create).
  84. uninstall:
  85.     for dir in ${subdirs}; do \
  86.         cd $$dir; \
  87.         ${MAKE} uninstall; \
  88.         cd ..  ;\
  89.     done
  90.  
  91.  
  92. #`clean'
  93. #     Delete all files from the current directory that are normally
  94. #     created by building the program.  Don't delete the files that
  95. #     record the configuration.  Also preserve files that could be made
  96. #     by building, but normally aren't because the distribution comes
  97. #     with them.
  98. #
  99. #     Delete `.dvi' files here if they are not part of the distribution.
  100. #
  101. # Cygnus extention:
  102. #    `clean'
  103. #          Should remove any file that can be regenerated by the
  104. #          `Makefile', excepting only the `Makefile' itself, and any
  105. #          links created by `configure'.  That is, `make all clean'
  106. #          should return all directories to their original condition.
  107. #          If this is not done, then the command sequence
  108. #
  109. #               configure HOST1 ; make all install clean ;
  110. #               configure HOST2 ; make all install
  111. #
  112. #          will fail because of intermediate files intended for HOST1.
  113. clean:
  114.     for dir in ${subdirs}; do \
  115.         cd $$dir; \
  116.         ${MAKE} clean; \
  117.         cd ..  ;\
  118.     done
  119.  
  120. #`distclean'
  121. #     Delete all files from the current directory that are created by
  122. #     configuring or building the program.  If you have unpacked the
  123. #     source and built the program without creating any other files,
  124. #     `make distclean' should leave only the files that were in the
  125. #     distribution.
  126. distclean:
  127.     for dir in ${subdirs}; do \
  128.         cd $$dir; \
  129.         ${MAKE} distclean; \
  130.         cd ..  ;\
  131.     done
  132.  
  133.  
  134. #`mostlyclean'
  135. #     Like `clean', but may refrain from deleting a few files that people
  136. #     normally don't want to recompile.  For example, the `mostlyclean'
  137. #     target for GCC does not delete `libgcc.a', because recompiling it
  138. #     is rarely necessary and takes a lot of time.
  139. mostlyclean:
  140.     for dir in ${subdirs}; do \
  141.         cd $$dir; \
  142.         ${MAKE} mostlyclean; \
  143.         cd ..  ;\
  144.     done
  145.  
  146.  
  147. #`realclean'
  148. #     Delete everything from the current directory that can be
  149. #     reconstructed with this Makefile.  This typically includes
  150. #     everything deleted by distclean, plus more: C source files
  151. #     produced by Bison, tags tables, info files, and so on.
  152. #
  153. #     One exception, however: `make realclean' should not delete
  154. #     `configure' even if `configure' can be remade using a rule in the
  155. #     Makefile.  More generally, `make realclean' should not delete
  156. #     anything that needs to exist in order to run `configure' and then
  157. #     begin to build the program.
  158. realclean:
  159.     for dir in ${subdirs}; do \
  160.         cd $$dir; \
  161.         ${MAKE} realclean; \
  162.         cd ..  ;\
  163.     done
  164.  
  165.  
  166. #`TAGS'
  167. #     Update a tags table for this program.
  168. TAGS:
  169.     for dir in ${subdirs}; do \
  170.         cd $$dir; \
  171.         ${MAKE} TAGS; \
  172.         cd ..  ;\
  173.     done
  174.  
  175. #`info'
  176. #     Generate any info files needed.  The best way to write the rules
  177. #     is as follows:
  178. #
  179. #          info:  foo.info
  180. #          
  181. #          foo.info: $(srcdir)/foo.texi $(srcdir)/chap1.texi $(srcdir)/chap2.texi
  182. #                  $(MAKEINFO) $(srcdir)/foo.texi
  183. #
  184. #     You must define the variable `MAKEINFO' in the Makefile.  It
  185. #     should run the Makeinfo program, which is part of the Texinfo2
  186. #     distribution.
  187. info:
  188.     for dir in ${subdirs}; do \
  189.         cd $$dir; \
  190.         ${MAKE} info; \
  191.         cd ..  ;\
  192.     done
  193.  
  194.  
  195. #`dvi'
  196. #     Generate DVI files for all TeXinfo documentation.  For example:
  197. #
  198. #          dvi: foo.dvi
  199. #          
  200. #          foo.dvi: $(srcdir)/foo.texi $(srcdir)/chap1.texi $(srcdir)/chap2.texi
  201. #                  $(TEXI2DVI) $(srcdir)/foo.texi
  202. #
  203. #     You must define the variable `TEXI2DVI' in the Makefile.  It should
  204. #     run the program `texi2dvi', which is part of the Texinfo2
  205. #     distribution.  Alternatively, write just the dependencies, and
  206. #     allow GNU Make to provide the command.
  207. dvi:
  208.     for dir in ${subdirs}; do \
  209.         cd $$dir; \
  210.         ${MAKE} dvi; \
  211.         cd ..  ;\
  212.     done
  213.  
  214. #`dist'
  215. #     Create a distribution tar file for this program.  The tar file
  216. #     should be set up so that the file names in the tar file start with
  217. #     a subdirectory name which is the name of the package it is a
  218. #     distribution for.  This name can include the version number.
  219. #
  220. #     For example, the distribution tar file of GCC version 1.40 unpacks
  221. #     into a subdirectory named `gcc-1.40'.
  222. #
  223. #     The easiest way to do this is to create a subdirectory
  224. #     appropriately named, use `ln' or `cp' to install the proper files
  225. #     in it, and then `tar' that subdirectory.
  226. #
  227. #     The `dist' target should explicitly depend on all non-source files
  228. #     that are in the distribution, to make sure they are up to date in
  229. #     the distribution.  *Ref Making Releases: (standards)Releases.
  230. distname = brand-x
  231. distdir = $(distname)
  232. treats = $(localtreats)
  233. announcefile = ANN.BX
  234.  
  235. manifest-file:
  236.     rm -f MANIFEST
  237.     cp $(announcefile) ANNOUNCE
  238.     for treat in $(localfiles) $(treats) ; \
  239.       do echo $$treat >> MANIFEST ; \
  240.     done
  241.     for subdir in $(subdirs) ; do \
  242.       make -s -f $$subdir/Makefile.in SUBDIR=$$subdir manifest >> MANIFEST ; \
  243.     done
  244.     sed -e "s%^%$(distdir)/%" MANIFEST > M2
  245.     sed -e "/Entering dir/d" -e "/Leaving dir/d" M2 > MANIFEST
  246.     rm M2
  247.  
  248.  
  249. dist: manifest-file
  250.     mkdir $(distdir)
  251.     - cd $(distdir); \
  252.     for file in $(localfiles) $(treats) $(subdirs); do ln -s ../$$file; done; \
  253.     cd ..; \
  254.     tar -zhcvf $(distname).tar.gz --files-from MANIFEST
  255.     rm -rf $(distdir)
  256.  
  257. ghouston-dist:
  258.     make -f Makefile.in distname=ghouston treats= announcefile=GHOUSTON "subdirs=rx guile slib" dist
  259.  
  260. guile-iii-dist:
  261.     make -f Makefile.in distname=guile-iii distdir=guile-src treats= announcefile=III \
  262.       "subdirs=libguile guile guile-docs gls slib ctax  goonix " dist
  263.  
  264. rx-dist:
  265.     make -f Makefile.in distname=rx4guile distdir=guile-src treats=  \
  266.       "subdirs=rx" localfiles=RX dist
  267.  
  268. mesa-dist:
  269.     make -f Makefile.in distname=mesaglutguile distdir=guile-src treats=  \
  270.       "subdirs=mesa glut ggl" localfiles=MESAGLUT dist
  271.  
  272. gtcltk-dist:
  273.     make -f Makefile.in distname=gtcltk distdir=guile-src treats=  \
  274.       "subdirs=gtcl gtk gtcltk" localfiles=GTCLTK dist
  275.  
  276. guile-ii-dist:
  277.     make -f Makefile.in distname=guile-ii treats= announcefile=GHOUSTON "subdirs=rx guile slib" dist
  278.  
  279. DIST_TARG=dist
  280. asah-dist:
  281.     make -f Makefile.in distname=asah treats= announcefile=ASAH "subdirs=rx gtcl gtk guile slib" $(DIST_TARG)
  282.  
  283. dev-dist:
  284.     make -f Makefile.in distname=guile-snap treats=PENDING  "subdirs=rx gtcl gtk guile slib demos latte Library TkWWW" $(DIST_TARG)
  285.  
  286. #`check'
  287. #     Perform self-tests (if any).  The user must build the program
  288. #     before running the tests, but need not install the program; you
  289. #     should write the self-tests so that they work when the program is
  290. #     built but not installed.
  291. check:
  292.     for dir in ${subdirs}; do \
  293.         cd $$dir; \
  294.         ${MAKE} check; \
  295.         cd ..  ;\
  296.     done
  297.  
  298.  
  299. #`installcheck'
  300. #     Perform installation tests (if any).  The user must build and
  301. #     install the program before running the tests.  You should not
  302. #     assume that `$(bindir)' is in the search path.
  303. installcheck:
  304.     for dir in ${subdirs}; do \
  305.         cd $$dir; \
  306.         ${MAKE} installcheck; \
  307.         cd ..  ;\
  308.     done
  309.  
  310.  
  311. #`installdirs'
  312. #     It's useful to add a target named `installdirs' to create the
  313. #     directories where files are installed, and their parent
  314. #     directories.  There is a script called `mkinstalldirs' which is
  315. #     convenient for this; find it in the Texinfo package.You can use a
  316. #     rule like this:
  317. #
  318. #          # Make sure all installation directories, e.g. $(bindir) actually exist by
  319. #          # making them if necessary.
  320. #          installdirs: mkinstalldirs
  321. #                  $(srcdir)/mkinstalldirs $(bindir) $(datadir) $(libdir) \
  322. #                                          $(infodir) $(mandir)
  323. installdirs:
  324.     for dir in ${subdirs}; do \
  325.         cd $$dir; \
  326.         ${MAKE} installdirs; \
  327.         cd ..  ;\
  328.     done
  329.  
  330.  
  331. # Cygnus extention:
  332. #    `install-info'
  333. #          Install all info files.
  334. install-info:
  335.     for dir in ${subdirs}; do \
  336.         cd $$dir; \
  337.         ${MAKE} install-info; \
  338.         cd ..  ;\
  339.     done
  340.  
  341.  
  342. # Cygnus extention:
  343. #    `clean-info'
  344. #          Remove all info files and any intermediate files that can be
  345. #          generated from texinfo source.
  346. clean-info:
  347.     for dir in ${subdirs}; do \
  348.         cd $$dir; \
  349.         ${MAKE} clean-info; \
  350.         cd ..  ;\
  351.     done
  352.  
  353.  
  354. # Cygnus extention:
  355. #    `Makefile'
  356. #          Calls `./config.status' to rebuild the `Makefile' in this
  357. #          directory.
  358. Makefile:
  359.     ${SHELL-/bin/sh} config.status
  360.